#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

//需求：利用系统调用实现love.txt的一个备份，并在控制台输出文件内容
int main(int argc, char const *argv[])
{
    //打开读文件流 love.txt
    int fd = open("love.txt", O_RDONLY);
    if (fd == -1)
    {
        printf("打开读文件流失败 \n");
        return -1;
    }
    
    //打开写文件流 love2.txt
    int fd2 = open("love2.txt", O_WRONLY | O_CREAT, 0644);
    if (fd2 == -1)
    {
        printf("打开写文件流失败 \n");
        return -1;
    }
    //不断的边读边写， 同时将读取的内容输出到控制台
    char data_buf[128] = {0};
    int read_len = 0;
    while ((read_len = read(fd, data_buf, sizeof(data_buf))) > 0)
    {
        printf("读取内容：%s \n", data_buf);
        //写入文件
        write(fd2, data_buf, read_len);
        //输出到控制台
        write(STDOUT_FILENO, data_buf, read_len);
    }
    //关闭读文件流、写文件流
    close(fd);
    close(fd2);
    return 0;
}
